home *** CD-ROM | disk | FTP | other *** search
- CEnvi Shareware Manual, Chapter 1:
- CEnvi Unregistered Shareware
-
-
- CEnvi unregistered version 1.0
- 9 AUGUST 1993
-
- CEnvi Shareware User's Manual
-
- Copyright 1993, Nombas, All Rights Reserved.
- Published by Nombas, P.O. Box 875, Medford, MA 02155 USA
- (617)391-6595, (617)391-5289
-
- Thank you for trying this shareware version of CEnvi from Nombas.
-
- 1. CEnvi Unregistered Shareware
-
- 1.1. Introduction to Cmm and CEnvi
-
- Cmm (C minus minus) is 'C' for the rest of us. CEnvi runs Cmm
- programs in the DOS, Windows, OS/2, NT, Unix, etc...
- environments. Together, CEnvi and Cmm make the power and
- flexibility of the C programming language part of every computer
- user's environment, without the hardware, time, and programmer
- resources needed for developing full-blown C programs.
-
- With CEnvi and Cmm, anyone can take control of their computer
- environment. C is not just for programming nerds anymore. CEnvi
- utilites, macros, batch files, and scripts can quickly be
- created, shared, and modified among all computer users,
- professional and amateur alike.
-
- CEnvi can be incorporated at a pace that is comfortable to you:
- you may just want to use CEnvi code set up by a more experienced
- user, you may want to enhance existing batch files with a line or
- two of CEnvi code, or you may write complete utilities using
- CEnvi.
-
- 1.2. CEnvi unregistered shareware version
-
- This package is the unregistered shareware version of CEnvi.
- Nombas provides this unregistered shareware version of CEnvi so
- that you can try the program for a while before deciding whether
- to buy. If, after a few weeks of using using this product, you
- think CEnvi will be useful to you and/or your organization then
- use the registration form at the end of this document (or see the
- file: REGISTER.DOC) to register CEnvi.
-
- 1.2.1 Why you should register
-
- If you register, then you will receive:
- *The latest version of CEnvi for all supported platforms
- (currently DOS, OS/2, and Windows, with NT support expected
- soon) without the annoying "Please Register" reminder.
- *The CEnvi user's manual (almost 100 pages, including a
- description of the Cmm programming language, a tutorial for
- those who have never programmed, and descriptions and
- examples of the nearly 150 functions included in the CEnvi
- library).
- *Free incremental electronic downloads for new versions of
- CEnvi for all supported operating systems.
- *Unlimited support from Nombas and CEnvi/Cmm users through
- CompuServe (72212,1622), internet (bsn@world.std.com), the
- cenvi-cmm e-mail mailing list (cenvi-cmm@world.std.com), and
- the Nombas BBS (617-391-6595).
- *Access to the growing list of CEnvi utilities and libraries
- (some of which are included in this unregistered shareware
- package, and others are contributed by Nombas and CEnvi/Cmm
- users to the electronic locations described above).
- *Discounts for additional registered version of CEnvi to use
- within your organization.
-
- 1.2.2 How to register
-
- See the REGISTER.DOC document that is included with this package
- (and is also duplicated at the end of this document), to purchase
- a registered version of CEnvi.
-
- 1.3. Installing CEnvi, documents, and sample files
-
- To install this package for evaluation
- * Create a directory and then copy all of these files into that
- directory.
- * From within that directory execute CEnvi.exe.
- * At the CEnvi "Code:" prompt enter "Install.cmm" to execute
- the Install program (which is written in Cmm).
- * You may then test CEnvi by trying out the included example
- files and by creating CEnvi code of your own.
-
- For DOS and OS/2 versions, the install.cmm program will set up
- the PATH environment variable to include the directory you
- installed the files in, and will also set the CMMPATH environment
- variable to this directory. For Windows, install will add the
- CMMPATH profile value in WIN.INI (in the [CEnvi] section), and
- will also add the CMM file extension to the [Extensions] section
- in WIN.INI.
-
- 1.4. Removing CEnvi unregistered shareware
-
- If, after testing CEnvi for a few weeks, you choose not to
- register this version of CEnvi, then you should remove the
- program from your computer. (Also please consider telling Nombas
- why CEnvi did not suit your needs; we need such feedback if we
- are to improve the product.)
-
- For all operating systems, the first step for removing CEnvi is
- to delete all the CEnvi files and the directory that you copied
- the files to. The next step depends on your operating system:
-
- 1.4.1 DOS de-installation
-
- Install.cmm made two changes to C:\AUTOEXEC.BAT: the directory
- that CEnvi was in will have been added to your PATH statement,
- and the CMMPATH environment variable will have been added. To
- de-install CEnvi you must remove the CEnvi directory from the
- PATH statement and you must also delete the "SET CMMPATH=..."
- line.
-
- 1.4.2 OS/2 de-installation
-
- Install.cmm made two changes to C:\CONFIG.SYS: the directory that
- CEnvi was in will have been added to your PATH statement, and the
- CMMPATH environment variable will have been added. To de-install
- CEnvi you must remove the CEnvi directory from the PATH statement
- and you must also delete the "SET CMMPATH=..." line.
-
- 1.4.3 Windows de-installation
-
- Install.cmm made two changes to WIN.INI: the CMM profile
- extension was added and the CMMPATH profile string was created.
- To de-install CEnvi you must edit WIN.INI (with NOTEPAD.EXE for
- example) and remove from the [Extensions] section a line similar
- to this:
- CMM=C:\CENVI\CENVI.EXE ^.CMM
- and also remove these line (or lines much like these) from
- WIN.INI:
- [CEnvi]
- CMMPATH=E:\NOMBAS\CENVI\EXAMPLES.WIN
-
- 1.5. Using this package
-
- 1.5.1 Unregistered CEnvi shareware executable
-
- The executable in this package, named CEnvi.EXE, is identical to
- the registered version of CEnvi at the time this package was
- created with one exception: this unregistered shareware version
- will occasionally put up a screen to remind you to register your
- copy of CEnvi (see the bottom of this document or REGISTER.DOC).
- Nombas has spent, and will continue to spend, time and resources
- developing and supporting CEnvi and Cmm. Without your honest
- support Nombas cannot improve and support CEnvi (and pay
- mortgage, feed the kids, pay the doctor, etc...).
-
- It is likely that months have elapsed since this shareware
- package has been put together (see date at the top of this file).
- If so, then the version of CEnvi you receive will be an updated
- version of this one. At the time of this release, incremental
- improvements have been planned in memory use, speed of execution,
- debugging tools, developer tools, and documentation.
-
- 1.5.2 Example programs
-
- The following example programs are included with this shareware
- version of CEnvi. Those files with a batch extension (.BAT for
- DOS and .CMD for OS/2) can be run by invoking the batch file
- directly. Those files with the CEnvi source file extension
- (.CMM) are invoked by executing CEnvi with the file name as the
- first argument (e.g. CENVI FranTick.cmm). Files with different
- (e.g., *.LIB, *.H, *.DAT) are files used by CEnvi some of the
- example programs.
-
- Many of the files will provide help for how to use them if they
- are invoked with "/?" as the only parameter.
-
- All of these example files are here for you to view, study,
- experiment with, and alter for your own use. The Nombas BBS will
- continue to gather CEnvi and Cmm example files created by Nombas
- or uploaded by CEnvi and Cmm users; so registered users will have
- a large library to choose from (maybe some other CEnvi user has
- already solved your need, or perhaps their need is close to yours
- and you will only have to make small modifications to someone
- else's uploaded CEnvi program).
-
- 1.5.3 DOS example files:
- *AllDirs.bat: Perform a command in this directory and all
- sub-directories
- *AllFiles.bat: Perform a command on all files matching a given
- file specification
- *Ascii.bat: Display the ascii character table
- *BatLoops.bat: Examples of various methods CEnvi can use to
- allow looping within batch files
- *BattMem.bat: Show values stored in a PC's battery-protected
- memory
- *Border.cmm: Draw a simple border on the screen
- *DelTree.bat: Delete a directory tree
- *DelTree1.bat: Delete a directory tree - another method
- *DelTree2.bat: Delete a directory tree - yet another method
- *DirStat.bat: Extract specific fields from a DOS "DIR" listing
- *DiskFree.bat: Display free space on a disk drive
- *DosTime.bat: Show time according to computer's internal clock
- *Fibonacc.cmm: Two methods for generating the Fibonacci
- sequence
- *FileFind.bat: Wildcard search for files on current drive or on
- all drives
- *Find#.cmm: Extract a number from wordy output; used by
- DirStat.bat
- *FranTick.cmm: Animated tick who drank too much coffee
- *GetUKey.cmm: Display a choice prompt and then set an
- environment variable based on user's selection
- *Hello.cmm: My first Cmm program. Used to begin the Cmm
- tutorial.
- *HexDump.bat: Display hexidecimal dump of a file
- *Install.cmm: Install this CEnvi unregistered shareware
- version.
- *IsDay_1.bat: One method to check if it is a specific day of
- the week
- *IsDay_2.bat: Another method to check if it's a specific day of
- the week
- *IsItFri.bat: Is it Friday?
- *KbdBuf.bat: Alter the size of the keyboard buffer
- *KbdRate.bat: Alter the typematic rate of the keyboard
- *KeyCode.bat: Display keycode of any key pressed
- *KeyState.bat: Get or set the state of the NumLock or CapsLock
- keys
- *KeyStuff.bat: Stuff characters into the keyboard buffer
- *MemBlock.bat: Trace through DOS's allocated memory blocks
- *Mouse.bat: Demonstrate reading a mouse's position and state
- *MultiDir.bat: DOS's "DIR" command allowing multiple file
- specifications
- *NumLockd.bat: Set the NumLock key on
- *OneADay.bat: Perform any command(s) no more than once per day
- *PathAdd.bat: Add a directory to your PATH environment
- variable.
- *PathDel.bat: Remove a directory from your PATH environment
- variable
- *PathStak.bat: Multi-level save or restore of current drive and
- directory so that you can change drives and directories and
- still return to this one
- *PathSubs.bat: Use DOS's SUBST command to shorten your PATH
- environment variable so that more paths can be fit with DOS'
- 127-byte limit
- *Primes.bat: Demonstrate automatic array allocation for
- calcualting prime numbers
- *PrmptDay.bat: Change command-line-prompt to display today's
- date
- *Quote.bat: Choose a "profound" quote at random
- *REBOOT_1.BAT: One method to reboot your computer
- *REBOOT_2.BAT: Another method to rebott your computer
- *Restrict.cmm: Allow a limited subset of DOS commands
- *SortLen.bat: Sort any file based on line length
- *Sound.bat: Play a frequency for a given time period
- *Tee.cmm: Save screen output to a file while it is being
- displayed on the screen
- *ValidDir.bat: Verify if a directory is valid
- *Wait.bat: Puse and do not return for specifiec number of
- seconds
-
- 1.5.4 OS/2 example files:
- *AllDirs.cmd: Perform a command in this directory and all
- sub-directories
- *AllFiles.cmd: Perform a command on all files matching a given
- file specification
- *Ascii.cmd: Display the ascii character table
- *BatLoops.cmd: Examples of various methods CEnvi can use to
- allow looping within batch files
- *Border.cmm: Draw a simple border on the screen
- *CEnviSet.cmd: This file can be used instead of CEnvi.exe if
- you are using environment variables as Cmm variables and need
- them to be changed in the current OS/2 environment.
- *DelTree.cmd: Delete a directory tree
- *DelTree1.cmd: Delete a directory tree - another method
- *DelTree2.cmd: Delete a directory tree - yet another method
- *Devices.cmd: Show status of system devices.
- *DirStat.cmd: Extract specific fields from a DOS "DIR" listing
- *DiskFree.cmd: Display free space on a disk driveDirStat.cmd:
- *DosCalls.lib: Example library of "wrapper" function calls to
- OS/2 API calls in the DosCalls library. This file is
- "#include"ed in many of the other example files.
- *EPM.cmd: Wrapper for EPM.EXE for C programmers which will
- bring in realted *.c, *.H and *.asm files
- *Fibonacc.cmm: Two methods for generating the Fibonacci
- sequence
- *FileFind.cmd: Wildcard search for files on current drive or on
- all drives
- *Find#.cmm: Extract a number from wordy output; used by
- DirStat.bat
- *FranTick.cmm: Animated tick who drank too much coffee
- *GetUKey.cmm: Display a choice prompt and then set an
- environment variable based on user's selection
- *Hello.cmm: My first Cmm program. Used to begin the Cmm
- tutorial.
- *HexDump.cmd: Display hexidecimal dump of a file
- *IDLE.cmd: Change process priority to run a CEnvi program only
- during system idle time.
- *Install.cmm: Install this CEnvi unregistered shareware
- version.
- *IsDay_1.cmd: One method to check if it is a specific day of
- the week
- *IsDay_2.cmd: Another method to check if it's a specific day of
- the week
- *IsItFri.cmd: Is it Friday?
- *KbdRate.cmd: Alter the typematic rate of the keyboard
- *KeyCode.cmd: Display keycode of any key pressed
- *KeyState.cmd: Get or set the state of the NumLock or CapsLock
- keys
- *KillProc.cmd: Terminate a running process by Process ID, full
- name, or partial name
- *MultiDir.cmd: OS/2's "DIR" command allowing multiple file
- specifications
- *OneADay.cmd: Perform any command(s) no more than once per day
- *OS2Time.cmd: Show time according to computer's internal clock
- *Parents.cmd: Show heriarchical list of ancestor's process ID's
- and names
- *PathAdd.cmd: Add a directory to your PATH environment
- variable.
- *PathDel.cmd: Remove a directory from your PATH environment
- variable
- *PathStak.cmd: Multi-level save or restore of current drive and
- directory so that you can change drives and directories and
- still return to this one
- *PMdll.lib: Example library of "wrapper" routines to function
- in the PM DLL (Presentatiom Manager Dynamic Link Library).
- This file is "#include"ed in many of the other example files.
- *Primes.cmd: Demonstrate automatic array allocation for
- calcualting prime numbers
- *PrmptDay.cmd: Change command-line-prompt to display today's
- date
- *ProcList.cmd: Show list of all running processes; their names
- and ID's
- *Quote.cmd: Choose a "profound" quote at random
- *Restrict.cmm: Allow a limited subset of DOS commands
- *Setup.cmd: Open the OS/2 Setup Setup folder on the desktop
- *SortLen.cmd: Sort any file based on line length
- *Sound.cmd: Play a frequency for a given time period
- *Switch.cmd: Switch foreground application to another process
- base on process ID, full name, or partial name
- *Tee.cmm: Save screen output to a file while it is being
- displayed on the screen
- *Threads.cmd: Display list of all threads in all running
- processes
- *ValidDir.cmd: Verify if a directory is valid
- *Wait.cmd: Puse and do not return for specifiec number of
- seconds
- *Windows.cmd: Start up full-screen windows session with
- specified Windows program. This file contains specific DOS
- notebook settings that should be altered to meet your
- computer's configuration.
- *WinList.cmd: Display list of all PM windows
- *WPFolder.cmd: Open a desktop folder for any specified
- directory and optionally switch to that window
-
- 1.5.5 Windows example files:
-
- The following CEnvi source programs can be run by associating the
- .cmm file extension with CEnvi.exe. This can be done by using
- the File Manager: select one of these .cmm files then choose
- File/Association and select the full path to CEnvi.exe. After
- this, you can run any of these exmple files simply by
- double-clicking on it.
- *Ascii.cmm: Display the ascii character table
- *BattMem.cmm: Show values stored in a PC's battery-protected
- memory
- *BootEd1.cmm: Startup NotePad to edit c:\AutoExec.bat and
- C:\Config.sys using Windows DLL's.
- *BootEd2.cmm: Startup NotePad to edit c:\AutoExec.bat and
- C:\Config.sys using CEnvi's spawn() function.
- *Border.cmm: Draw a simple border on the screen
- *DosTime.cmm: Show time according to computer's internal clock
- *Fibonacc.cmm: Two methods for generating the Fibonacci
- sequence
- *FranTick.cmm: Animated tick who drank too much coffee
- *Hello.cmm: My first Cmm program. Used to begin the Cmm
- tutorial.
- *HexDump.cmd: Display hexidecimal dump of a file
- *Icons.cmm: Minimize all windows. Demonstrate PostMessage()
- from Message.lib.
- *Install.cmm: Install this CEnvi unregistered shareware
- version.
- *Message.lib: Wrappter for Windows' PostMessage() and
- SendMessage() fucntion to send commands to windows.
- *MsgBox.lib: A wrapper library for Windows' MessageBox()
- function. This file is #include'd in other CEnvi sample
- files.
- *MsgBoxes.cmm: Show various message box types using the
- function in MsgBox.lib.
- *OpenCmm.cmm: Use Windows' common dialog (via PickFile.lib) to
- select a *.cmm file to edit.
- *PickFile.lib: A simple interface to the GetOpenFileName()
- function in the Windows Common Dialog DLL. This library file
- is #include'd in some of the other CEnvi sample files.
- *Quote.cmm: Choose a "profound" quote at random
- *WinBeep.cmm: Call Windows' MessageBeep() function.
- *WinExec.lib: A wrapper library for Windows' WinExec()
- function. This file is #include'd in other CEnvi sample
- files.
- *WinExecs.cmm: Demonstratio of Windows' WinExec() function
- using the wrapper from WinExec.lib.
- *WinList.cmm: Show a list of all Windows, their handles, and
- their children.
- *WinUtil.lib: A small selection of utilities that may be
- #include'd in CEnvi code to get simple access to Windows DLL
- functions.
-
- 1.6. CEnvi - A Cmm Interpreter
-
- This section describes the CEnvi program, and describes the
- various methods for use CEnvi.exe to execute Cmm programs.
-
- 1.6.1 What is CEnvi?
-
- CEnvi is the first (and so far only) application to implement the
- Cmm programming language. CEnvi is a Command-line version of a
- Cmm interpreter, and it can use Environment variables as if they
- were global Cmm variables. CEnvi contains a reasonable facsimile
- of the standard C library, and can link at runtime to external
- Cmm libraries.
-
- The "Envi" and the "C" in CEnvi reflects the envy that computer
- professionals often feel when they are working on a computer that
- does not have a complete C programming environment. "Envi" also
- refers to the environment variables that CEnvi attempts to work
- with as if they were regular Cmm variables.
-
- Like all implementations for Cmm, CEnvi is portable between
- operating systems. It is currently testing under DOS, OS/2, and
- Windows, and other OS ports are in the works.
-
- 1.6.2 Environment Variables
-
- Variables in all UPPERCASE letters are taken from the environment
- variables. Environment variables are treated like other
- variables except that they don't need quotes around them to
- default to being strings if they don't match another type.
-
- To the source code, the only difference between a variable and an
- environment variable is that environment variables are all
- UPPER_CASE letters. When the environment variable is first used
- it is read from the environment block and some assumptions are
- made about what kind of variable it is; this can lead to problems
- when I=666 is interpreted as the number 666 when really it maybe
- should have been the string "666". Before the program exits, all
- environment variables used by the code are then written to the
- environment block.
-
- In some implementations (CEnvi for DOS, for example) the
- environment variables remain changed even after the Cmm
- interpreter exits. In other cases, special kludges must be added
- to alter a parent process' environment variables (see ESet() for
- OS/2).
-
- 1.6.3 Special Environment Variables
-
- These environment variables affect where CEnvi looks for source
- files:
- *CMMPATH: This environment will be checked for directories to
- search for include files if the include file is not in the
- current directory. For Windows, this value may come from the
- CMMPATH profile value in WIN.INI (in the [CEnvi] section).
- *PATH: Batch-file source files (see below) will be searched in
- these directories if not found in the current directory.
- *CENVI_ESET: In those environment for which CEnvi cannot
- covertly alter the environment variables of the command
- interpreter (e.g., OS/2), this environment variable specifies
- a file name. CEnvi will write the strings necessary for the
- command interpreter to set environment variables as altered
- by your Cmm code. See the description of ESet() for more
- information about this command.
-
- 1.6.4 Executing Code as command-line Input Parameters
-
- If a Cmm program is very short, then it can be executed wholly
- from the command line. For example, here is the famous hello
- world program executed from the cli prompt:
- CEnvi main() { printf("Hello world!"); }
- which can be written more conisely under Cmm rules as:
- CEnvi printf("Hello world!")
-
- You may have to keep in mind bahavior of the cli when inputting
- code. It is sometimes necessary to put quotes around code to
- keep symbols from being interpreted by the cli, as in this
- example:
- CEnvi "for(i=0;i<10;i++) printf("%d\n",i)"
- where the quotes are necessary to prevent the cli from
- interpreting the "<" as file redirection.
-
- Also, in batch files (DOS, OS/2) you need to remember that "%"
- has special meaning for the batch file processor, and so the
- above line in a batch would have to be written as:
- CEnvi "for(i=0;i<10;i++) printf("%%d\n",i)"
-
- 1.6.5 Executing *.CMM Source File Code
-
- A file with the extension ".CMM", if the file name is given as
- the first parameter to CEnvi.exe, is considered by CEnvi to be
- pure CMM source code. This file with the .CMM extension is
- expected to be a plain Cmm source file, just as a C compiler
- expects a file with the .C extension to be C source code. CEnvi
- will check the current directory for the .CMM file, and then
- check directories in the PATH environment variable. Any
- arguments passed to CEnvi.exe after the .CMM source name are
- given to the main(argc,argv) function in the source, if there is
- one. So the hellow.cmm program can look identical to the
- hellow.c program, and when you run CEnvi.exe hellow.cmm you get
- the same output. If you run
- CEnvi.exe FOO.CMM One Two Three
- the main function in FOO.CMM would get argc=4 and
- argv[0]="FOO.CMM" and argv[3]="THREE".
-
- This all means that if you were to have an executable FOO.EXE
- that is similar to FOO.CMM, then "FOO.EXE" is interchangeable
- with "CENVI FOO.CMM", i.e.,
- FOO.EXE arg1 arg2 arg3
- is the same as:
- CENVI FOO.CMM arg1 arg2 arg3
-
- In OS/2 or windows or other environments where file extensions
- can be associated with programs, you may want to associate the
- .CMM extension with CEnvi.exe, so that double-clicking on
- HELLOW.CMM will act identically to double-clicking on the
- compiled-and-linked HELLOW.EXE.
-
- 1.6.6 Batch-File Kludge
-
- The most convenient method for executing Cmm source code from the
- DOS or OS/2 command line is sort of a kludge: if the first
- argument to CEnvi is the name of a batch file, then CEnvi reads
- that batch file and accepts as source all the code between the
- lines "GOTO CENVI_EXIT" and ":CENVI_EXIT", and passes the command
- line arguments to main(argc,argv). This is very similar to
- executing:
- CEnvi.exe #include'foo,bat,,GOTO CENVI_EXIT,:CENVI_EXIT'
- except that the '#include' statement is handled automatically by
- CEnvi, and the rest of the command-line arguments are passed to
- main().
-
- Note that ".bat" is the DOS version of the batch file name
- extension. This name is different for different operating
- systems.
-
- In this way, a batch file can be run exactly like a .EXE file,
- and the command arguments are passed to main in the same way. If
- the full path of the batch file is not supplied, then CENvi will
- look in the current directory and then in directories in the
- PATH.
-
- Here is an example of an OS/2 batch file that expects any number
- (up to 9) of integers and sets the SUM environment variable to
- the values added together. (It calls CEnviSet instead of CEnvi
- directly in order to set the environment variable.)
-
- @echo off
- REM *********************************************************
- REM *** SUM.BAT - Use CEnvi to sum lots of numbers together,*
- REM *** setting the SUM environment variable to *
- REM *** the result of adding all the numbers. *
- REM *********************************************************
- call CEnviSet %0.bat %1 %2 %3 %4 %5 %6 %7 %8 %9
- GOTO CENVI_EXIT
-
- main(argc,argv)
- {
- SUM = 0;
- for ( i = 1; i < argc; i++ )
- SUM += atoi(argv[i])
- }
-
- :CENVI_EXIT
-
- 1.6.7 EXTPROC: *.CMD Source file (For OS/2)
-
- Under the OS/2 command processor, you can define an external
- processor to process a batch (*.cmd) file if the first statement
- is EXTPROC. EXTPROC is followed by the name of the processor,
- which in this case will be "CEnvi". This is an example file,
- ARGS.CMD, of a program to display all input parameters:
-
- EXTPROC CEnvi
-
- main(argc,argv)
- {
- for ( i = 0; i < argc; i++ )
- printf("Input argument %d = \%s\n",i,argv[i]);
- }
-
- 1.6.8 REXX-File Kludge (For OS/2)
-
- Similar to the Batch-File Kludge described above, if the first
- argument to CEnvi is the name of a REXX source file then CEnvi
- automatically executes the code between "SIGNAL CENVI_EXIT" and
- "CENVI_EXIT:". This example Rexx file for OS/2 behaves the same
- as the previous batch program example (CEnviSet.cmd is an OS/2
- batch file that helps run Cmm files if environment variables need
- to be altered--see ESet in the OS2Lib appendix):
-
- /***********************************************************
- *** SUM.CMD - Use CEnvi to sum lots of numbers together,***
- *** setting the SUM environment variable to ***
- *** the result of adding all the numbers. ***
- ***********************************************************/
- 'call CEnviSet %0.cmd %1 %2 %3 %4 %5 %6 %7 %8 %9'
- SIGNAL CENVI_EXIT
-
- main(argc,argv)
- {
- SUM = 0;
- for ( i = 1; i < argc; i++ )
- SUM += atoi(argv[i])
- }
-
- CENVI_EXIT:
-
- 1.6.9 CMM File Association and Drag-and-Drop (OS/2)
-
- You can associate CEnvi.exe with .cmm files through the settings
- notebook of CEnvi.exe. This lets you executed any CEnvi *.cmm
- file simply by double-clicking its icon in the desktop.
-
- A Cmm program can be set up as a Workplace Shell program that
- accepts drag and drop. To do this, drag a program template out
- of the templates folder and place it on the desktop where you
- want your Cmm program to run from. In program settings for this
- program object set the program name to the path and file
- specification for CEnvi.exe (e.g., "C:\CMM\CEnvi.exe"). Set
- Parameters to the full source and file name of the Cmm file
- (e.g., "C:\CMM\CZIP.cmm"). Then rename the program object to
- whatever you want (e.g., "CZIP"). Then whenever you drag a file
- onto that object then the filename will be the second argument to
- main().
-
- 1.6.10 CMM File Association and Drag-and-Drop (Windows)
-
- You can associate Cmm files with CEnvi.exe by using the File
- Manager: select a .cmm file then choose File/Association and
- select the full path to CEnvi.exe. After this, you can run any
- of *.cmm program simply by double-clicking on it.
-
- -------------------------------- FILE LIST --------------------------------
- The CEnvi Unregistered Shareware package includes the files in the
- following list. You are not permitted to upload or otherwise transfer
- copies of any registered version of CEnvi that does not include all of the
- files in this list.
-
- *CENVI.EXE: CEnvi shareware executable for DOS, OS/2, or Windows.
- *CENVI.DOC: CEnvi Shareware Manual, Chapter 1: CEnvi Unregistered Shareware
- *CMMTUTOR.DOC: CEnvi Shareware Manual, Chapter 2: Cmm Language Tutorial
- *CMM_VS_C.DOC: CEnvi Shareware Manual, Chapter 3: Cmm versus C, for C
- Programmers
- *CENVILIB.DOC: CEnvi Shareware Manual, Chapter 4: Function Library
- *FILELIST.DOC: This file.
- *LICENSE.DOC: CEnvi Unregistered Shareware License Agreement
- *REGISTER.DOC: CEnvi registration form
- *INSTALL.CMM: Cmm source file for installing this shareware version
- * *.CMM, *.CMD, *.BAT, *.LIB: Many many sample programs using CEnvi. See
- CENVI.DOC for a complete list.
-
- ----------------------------- REGISTRATION -------------------------------
- This is a shareware release. Please register. As a registered CEnvi user
- you will receive:
- *The latest version of CEnvi for all supported platforms (currently DOS,
- OS/2, and Windows).
- *The CEnvi user's manual (almost 100 pages, including a description of the
- Cmm programming language, a tutorial for those who have never programmed,
- and descriptions and examples of the nearly 150 functions included in the
- CEnvi library).
- *Free incremental electronic downloads for new versions of CEnvi for all
- supported operating systems.
- *Unlimited support from Nombas and CEnvi/Cmm users through CompuServe
- (72212,1622), internet (bsn@world.std.com), the cenvi-cmm e-mail mailing
- list (cenvi-cmm@world.std.com), and the Nombas BBS (617-391-6595).
- *Access to the growing list of CEnvi utilities and libraries (some of which
- are included in this unregistered shareware package, and others are
- contributed by Nombas and CEnvi/Cmm users to the electronic locations
- described above).
-
- ------------------------- CENVI REGISTRATION FORM -------------------------
- Thank you for registering your shareware copy of CEnvi version 1.0. Please
- fill out and mail in this form, along with payment.
-
- Where did you get CEnvi? ______________________________________________
-
- Name: _________________________________________________________________
-
- Company: ______________________________ Position: _____________________
-
- Address: ______________________________________________________________
-
- _______________________________________________________________________
-
- ______________________________________________________________________
-
- Country: _________________________ (add ZIPcode if applicable)
-
- Phone: ___________________________ EMail: ______________________________
-
- Diskette size: [ ] 3.5" [ ] 5.25"
-
- CEnvi Registered License ............ Quantity _____ x $38.00 = $ _________
- Additional CEnvi Registered licenses for your
- organization (does not include additional manuals
- or diskettes). You must already be a registered
- user to purchase additional licenses.
- Additonal License Quantity _____ x $15.00 = $ _________
- Additional CEnvi Manuals. You must already be a
- registered user to purchase additional manuals.
- Additional Manuals Quantity _____ x $10.00 = $ _________
- Friend-of-Cmm Discount: enter $-5.00, and BBS
- location, if you have uploaded CEnvi Unregistered
- Shareware to a BBS where it wasn't already available.
- BBS Location ____________________________________________ $-_________
- Shipping outside USA, Canada, or Mexico $4.00 ................ $ _________
- Subtotal $ _________
- Massachusetts residents please add 5% sales tax ............... $ _________
-
- Total $ _________
-
- Include a check or money order for this total, in U.S. funds and drawn on a
- U.S. bank, payable to Nombas. Mail with this form to:
- Nombas
- P.O. Box 875
- Medford, MA 02155 USA
-
- Nombas may also be contacted at:
- BBS: (617)391-6595
- Phone: (617)391-6595, (617)391-5289
- Internet: bsn@world.std.com
- CompuServe: 72212,1622
-
-
- Nombas welcomes all comments, good or bad, regarding CEnvi and Cmm. Please
- use the back of this form to give us all your suggestions about CEnvi and
- Cmm. This is version 1.0; Where should we go from here?
-